"""
RDD的reduceByKey成员方法：接受一个处理函数，对数据进行两两计算

功能：针对KV型RDD，自动按照key分组，然后根据用户提供的聚合逻辑，完成组内数据（value）的聚合操作
"""
from pyspark import SparkConf, SparkContext
import os
os.environ['PYSPARK_PYTHON'] = "F:/Python/python3.7.7/python.exe"
conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)

# 准备一个RDD
rdd = sc.parallelize([('男', 99), ('男', 88), ('女', 99), ('女', 66)])
# 求男生和女生两个组的成绩之和
rdd2 = rdd.reduceByKey(lambda a, b: a + b)
print(rdd2.collect())  # [('男', 187), ('女', 165)]
